home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / graphics / 3dvect30.arj / EQU.INC < prev    next >
Text File  |  1993-11-18  |  10KB  |  340 lines

  1. ; conditional assembley variables and general constants
  2.  
  3. yes     equ 0
  4. no      equ -1
  5.  
  6. ; constants for optimal conditional assembley
  7. ; don't pay for features you'll never use! (timewise)
  8. ; these are the most signifigant factors in determining speed!!
  9. ; note:bitmaps also slow things down...
  10.  
  11. usez       equ yes           ; z camera rotations ommited if no, saves 12 imuls
  12.                              ; this speeds up computation in "compound" matrix
  13. usesteel   equ yes           ; set no if no sides will use steel texture.
  14.                              ; makes poly_fill routine faster
  15. useborders equ no            ; lxupdate and xupdate will be skipped if no.
  16.                              ; set to no if you have no intention of ever
  17.                              ; using the clear_fill routine. this really
  18.                              ; is used if you will have a landscape in the
  19.                              ; background and you want the fake_line routine
  20.                              ; to be faster, and to skip slow "clear_fill".
  21. usefastborders equ yes       ; conditional to use memory hungry but fast clear
  22. use_half_stars equ no        ; use full stars or half stars. (full=set to no)
  23. perfect_stars  equ no        ; fast star calculation if no, perfect if yes.
  24.  
  25. ; thats the end of conditional assembley constants!
  26.  
  27. bulletcolour equ 4           ; what colour is single point object, from palette
  28.  
  29. ; variables for object and polygon routine
  30.  
  31. tolerance  equ 6000          ; max center of gravity offset for objects/ratio (onscreen pixel distance)
  32. ztruncate  equ 40            ; if z< ztruncate, z=ztruncate:for make3d (16 bit distance)
  33. minz       equ 60            ; minimum z before object can be seen:for make1obj (16 bit distance)
  34. maxz       equ 3000000       ; maximum distance in any axis object can be seen (24 bit distance)
  35. followtol  equ 300           ; tolerance if already looking at object,newfollow (angle)
  36. collision  equ 10            ; tolerence for merging two objects into 1 (for 3d3, 16 bit distance)
  37.  
  38. ; polygon constants
  39.  
  40. maxpoints   equ 450          ; max points (*total* on screen if 3d2)
  41. maxsurfaces equ 450          ; max object surfaces (*total* on screen if 3d2)
  42. mult        equ 3            ; shl ax,mult for number of sides
  43. maxpolys    equ 8  ;2^mult   ; max sides to a polygon,must = 2^mult,keep small!!
  44.  
  45. maxobjects  equ 8  ;50,100,? ; number of objects possible on screen at once
  46.  
  47. ; options for objects - note, some of these commands must be allowed to overlap
  48. ; point,line,texture,himap,lomap must not be at the same bit location as the
  49. ; texture options.  eg line cannot equal 128 because this would get smushed
  50. ; with shade.
  51. ;
  52. ; to re-cap:
  53. ;
  54. ; there cannot be conflicts between texture options and surface types
  55. ;
  56. ; there cannot be conflicts between surface types and (surface commands or
  57. ; internal commands or visibility commands)
  58. ;
  59. ; conflicts between texture options and (surface commands or internal
  60. ; commands or visibility commands) are not important
  61. ;
  62.  
  63. wavey    equ 1               ; texture options
  64. shade    equ 2
  65. inverse  equ 4
  66. glow     equ shade+inverse
  67. last     equ 8
  68.  
  69. point    equ 32              ; surface types
  70. line     equ 64              ; these options must not conflict with the stuff
  71. himap    equ 128             ; above or below!!!
  72. lomap    equ himap+1
  73.  
  74. iterate  equ 256             ; surface commands
  75.  
  76. normal   equ 1024            ; internal commands, not for use by you
  77.  
  78. both     equ 1               ; visibility determination methods
  79. double   equ 2
  80. onscr    equ 4
  81. check    equ 8
  82.  
  83. ; animation settings
  84.  
  85. number_of_spaces equ 10      ; number of spaces free for animation headers
  86.  
  87. ; where is the camera in the list
  88.  
  89. cameraobject equ 0           ; camera is zero'th object in list
  90.  
  91. ; mode x definitions
  92.  
  93. ;  0 =  320 x 200
  94. ;  1 =  320 x 400
  95. ;  2 =  360 x 200
  96. ;  3 =  360 x 400
  97. ;  4 =  320 x 240
  98. ;  5 =  320 x 480
  99. ;  6 =  360 x 240
  100. ;  7 =  360 x 480
  101.  
  102. videomode  equ  -1
  103.  
  104.            if videomode eq 0
  105.  
  106. xmode      equ videomode
  107. xmax       equ 160       ; right colomn just beyond screen for clipping
  108. xmin       equ -160      ; left coloumn on screen, x's must be "and 0fff8h"
  109. ymax       equ 100       ; lower row just beyond screen
  110. ymin       equ -100      ; upper row on screen
  111. xactual    equ 320       ; guess...
  112. yactual    equ 200
  113.  
  114. xcenter    equ 160       ; screen center x,y for actual screen point (0,0)
  115. ycenter    equ 100       ; make sure clipping still stays inside screen
  116.  
  117. ratiox     equ 320       ; aspect ratio for 3d conversion (zoom)
  118. ratioy     equ 240       ; make x and y different to fine tune (draw circle)
  119. pages      equ 4         ; # of video pages mode will support, (don't modify)
  120.  
  121.            elseif videomode eq 1
  122.  
  123. xmode      equ videomode
  124. xmax       equ 160
  125. xmin       equ -160
  126. ymax       equ 200
  127. ymin       equ -200
  128. xactual    equ 320
  129. yactual    equ 400
  130.  
  131. xcenter    equ 160
  132. ycenter    equ 200
  133.  
  134. ratiox     equ 320
  135. ratioy     equ 464
  136. pages      equ 2
  137.  
  138.            elseif videomode eq 2
  139.  
  140. xmode      equ videomode
  141. xmax       equ 180
  142. xmin       equ -180
  143. ymax       equ 100
  144. ymin       equ -100
  145. xactual    equ 360
  146. yactual    equ 200
  147.  
  148. xcenter    equ 180
  149. ycenter    equ 100
  150.  
  151. ratiox     equ 320
  152. ratioy     equ 240
  153. pages      equ 3
  154.  
  155.            elseif videomode eq 3
  156.  
  157. xmode      equ videomode
  158. xmax       equ 180
  159. xmin       equ -180
  160. ymax       equ 200
  161. ymin       equ -200
  162. xactual    equ 360
  163. yactual    equ 400
  164.  
  165. xcenter    equ 180
  166. ycenter    equ 200
  167.  
  168. ratiox     equ 300
  169. ratioy     equ 416
  170. pages      equ 1
  171.  
  172.            elseif videomode eq 4
  173.  
  174. xmode      equ videomode
  175. xmax       equ 160
  176. xmin       equ -160
  177. ymax       equ 120
  178. ymin       equ -120
  179. xactual    equ 320
  180. yactual    equ 240
  181.  
  182. xcenter    equ 160
  183. ycenter    equ 120
  184.  
  185. ratiox     equ 300
  186. ratioy     equ 280
  187. pages      equ 3
  188.  
  189.            elseif videomode eq 5
  190.  
  191. xmode      equ videomode
  192. xmax       equ 160
  193. xmin       equ -160
  194. ymax       equ 240
  195. ymin       equ -240
  196. xactual    equ 320
  197. yactual    equ 480
  198.  
  199. xcenter    equ 160
  200. ycenter    equ 240
  201.  
  202. ratiox     equ 260
  203. ratioy     equ 460
  204. pages      equ 1
  205.  
  206.            elseif videomode eq 6
  207.  
  208. xmode      equ videomode
  209. xmax       equ 180
  210. xmin       equ -180
  211. ymax       equ 120
  212. ymin       equ -120
  213. xactual    equ 360
  214. yactual    equ 240
  215.  
  216. xcenter    equ 180
  217. ycenter    equ 120
  218.  
  219. ratiox     equ 320
  220. ratioy     equ 260
  221. pages      equ 3
  222.  
  223.            elseif videomode eq 7
  224.  
  225. xmode      equ videomode
  226. xmax       equ 180
  227. xmin       equ -180
  228. ymax       equ 240
  229. ymin       equ -240
  230. xactual    equ 360
  231. yactual    equ 480
  232.  
  233. xcenter    equ 180
  234. ycenter    equ 240
  235.  
  236. ratiox     equ 280
  237. ratioy     equ 448
  238. pages      equ 1
  239.  
  240. ; if videomode = -1, custom configuration
  241.  
  242.            elseif videomode eq -1
  243.  
  244. xmode      equ 1
  245. xmax       equ 9*16
  246. xmin       equ -9*16
  247. ymax       equ 140
  248. ymin       equ -140
  249. xactual    equ 320
  250. yactual    equ 400
  251.  
  252. xcenter    equ 160
  253. ycenter    equ 200
  254.  
  255. ratiox     equ 320
  256. ratioy     equ 464
  257. pages      equ 2
  258.  
  259. ; if videomode = -2, custom configuration
  260.  
  261.            elseif videomode eq -2
  262.  
  263. xmode      equ 0
  264. xmax       equ 9*16
  265. xmin       equ -9*16
  266. ymax       equ 60
  267. ymin       equ -70
  268. xactual    equ 320
  269. yactual    equ 200
  270.  
  271. xcenter    equ 160
  272. ycenter    equ 100
  273.  
  274. ratiox     equ 320
  275. ratioy     equ 240
  276. pages      equ 2
  277.  
  278.            endif
  279.  
  280. ; ===== general xmode constants =====
  281.  
  282. false   equ 0
  283. true    equ -1
  284. nil     equ 0
  285.  
  286. b       equ byte ptr
  287. w       equ word ptr
  288. d       equ dword ptr
  289. o       equ offset
  290. f       equ far ptr
  291. s       equ short
  292. ?x4     equ <?,?,?,?>
  293. ?x3     equ <?,?,?>
  294.  
  295. ; ===== vga register values =====
  296.  
  297. vga_segment     equ d 0a0000h ; vga memory segment
  298.  
  299. attrib_ctrl     equ 03c0h   ; vga attribute controller
  300. gc_index        equ 03ceh   ; vga graphics controller
  301. sc_index        equ 03c4h   ; vga sequencer controller
  302. sc_data         equ 03c5h   ; vga sequencer data port
  303. crtc_index      equ 03d4h   ; vga crt controller
  304. crtc_data       equ 03d5h   ; vga crt controller data
  305. misc_output     equ 03c2h   ; vga misc register
  306. input_1         equ 03dah   ; input status #1 register
  307.  
  308. dac_write_addr  equ 03c8h   ; vga dac write addr register
  309. dac_read_addr   equ 03c7h   ; vga dac read addr register
  310. pel_data_reg    equ 03c9h   ; vga dac/pel data register r/w
  311.  
  312. pixel_pan_reg   equ 033h    ; attrib index: pixel pan reg
  313. map_mask        equ 002h    ; sequ index: write map mask reg
  314. read_map        equ 004h    ; gc index: read map register
  315. start_disp_hi   equ 00ch    ; crtc index: display start hi
  316. start_disp_lo   equ 00dh    ; crtc index: display start lo
  317.  
  318. map_mask_plane1 equ 00102h  ; map register + plane 1
  319. map_mask_plane2 equ 01102h  ; map register + plane 2
  320. all_planes_on   equ 00f02h  ; map register + all bit planes
  321.  
  322. chain4_off      equ 00604h  ; chain 4 mode off
  323. async_reset     equ 00100h  ; (a)synchronous reset
  324. sequ_restart    equ 00300h  ; sequencer restart
  325.  
  326. latches_on      equ 00008h  ; bit mask + data from latches
  327. latches_off     equ 0ff08h  ; bit mask + data from cpu
  328.  
  329. vert_retrace    equ 08h     ; input_1: vertical retrace bit
  330. plane_bits      equ 03h     ; bits 0-1 of xpos = plane #
  331. all_planes      equ 0fh     ; all bit planes selected
  332. char_bits       equ 0fh     ; bits 0-3 of character data
  333.  
  334. get_char_ptr    equ 01130h  ; vga bios func: get char set
  335. rom_8x8_lo      equ 03h     ; rom 8x8 char set lo pointer
  336. rom_8x8_hi      equ 04h     ; rom 8x8 char set hi pointer
  337.  
  338. num_modes       equ 8       ; # of mode x variations
  339.  
  340.